package net.facelib.live;

import java.util.concurrent.atomic.AtomicReference;

import net.gdface.image.MatType;
import net.gdface.sdk.FRect;

public interface FaceLive {
	/**
	 * 执行活体检测
	 * @param matType 矩阵类型:RGB,BGR,RGBA,NV21
	 * @param matData 图像矩阵
	 * @param width 矩阵宽度
	 * @param height 矩阵高度
	 * @param rect 人脸检测方法返回的人脸检测信息原始数据
	 * @param score [out]活体检测得分
	 * @return 枚举类型的活体检测结果 
	 */
	public LiveStatus matLiveProcess(MatType matType, byte[] matData, int width, int height, FRect rect, AtomicReference<Double>score);
	/**
	 * 执行活体检测
	 * @param platformImage 当前平台的图像对象,对于android平台，类型为Bitmap,对于通用JDK,类型为BufferedImage 
	 * @param rect 人脸检测方法返回的人脸检测信息原始数据
	 * @param score [out]活体检测得分,可为{@code null}
	 * @return 枚举类型的活体检测结果 
	 */
	public LiveStatus imageLiveProcess(Object platformImage,FRect rect,AtomicReference<Double> score);

	/**
	 * 返回当前算法的产品ID
	 * @return 产品ID
	 */
	public String getProductID();
}